Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Problema scrittura su file dei processi attivi
Forum - C# / VB.NET - [VB.NET] Problema scrittura su file dei processi attivi

Avatar
alfa93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 22/08/2009

Segnala al moderatore
Postato alle 15:09
Sabato, 22/08/2009
Ciao, Vorrei sapere cosa ho sbagliato in questo script ke legge i processi e dovrebbe scriverli in un file (Peccato ke creii solo il file).
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2. Dim temp As Process()
  3. Dim swrScrivi As New StreamWriter(My.Application.Info.DirectoryPath + "/process.txt", True)
  4.         temp = Process.GetProcesses
  5.         Dim x As Integer
  6.         For x = 0 To temp.Length - 1
  7.             swrScrivi.WriteLine(temp)
  8.         Next

End Sub

Ultima modifica effettuata da alfa93 il 22/08/2009 alle 15:12
PM Quote
Avatar
Daniele93 (Normal User)
Expert


Messaggi: 226
Iscritto: 29/05/2009

Segnala al moderatore
Postato alle 17:36
Sabato, 22/08/2009
Semplicemente copiando il codice da te postato in visual studio 2008 ottieni come errorre che streamwriter non è stato dichiarato... Infatti devi mettere:

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim swrScrivi As New System.IO.StreamWriter(My.Application.Info.DirectoryPath + "/process.txt", True)



Questo è l' errore proposto dal compilatore...

Provando a risolvere il problema mi sono bloccato anche io... Ottengo come testo del file: "System.Diagnostics.Process[]"... Ci lavorerò...

Ultima modifica effettuata da Daniele93 il 22/08/2009 alle 18:31
PM Quote
Avatar
alfa93 (Normal User)
Newbie


Messaggi: 9
Iscritto: 22/08/2009

Segnala al moderatore
Postato alle 18:53
Sabato, 22/08/2009
Non era quello...Era perke nn lo chiudevo alla fine!
Grazie cmq

P.S. = Devi importare questo
Codice sorgente - presumibilmente C# / VB.NET

  1. Imports System.IO
  2. Imports System


Ultima modifica effettuata da alfa93 il 22/08/2009 alle 19:01
PM Quote
Avatar
Daniele93 (Normal User)
Expert


Messaggi: 226
Iscritto: 29/05/2009

Segnala al moderatore
Postato alle 0:06
Domenica, 23/08/2009
Ok... Io continuo a avere lo stesso errore ovvero per ogni processo attivo mi scrive "System.Diagnostics.Process[]"...Ho una sola spiegazione che però non sembra reggere... Cercherò di capire... Tu sei riuscito a ottenere un file che avesse i nomi dei processi? Mi posteresti il codice che gli do un' occhiata?

P.S. Scusa l' insistenza ma cerco di capire xkè mi ha suscitato curiosità...

Ultima modifica effettuata da Daniele93 il 23/08/2009 alle 0:31
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:16
Lunedì, 24/08/2009
Testo quotato

Postato originariamente da Daniele93:

Ok... Io continuo a avere lo stesso errore ovvero per ogni processo attivo mi scrive "System.Diagnostics.Process[]"...Ho una sola spiegazione che però non sembra reggere... Cercherò di capire... Tu sei riuscito a ottenere un file che avesse i nomi dei processi? Mi posteresti il codice che gli do un' occhiata?

P.S. Scusa l' insistenza ma cerco di capire xkè mi ha suscitato curiosità...



Process.GetProcesses restituisce un array di processi, e gli array non si possono convertire in stringa, ergo...
Hai fatto un for che cicla temp.Length volte ma al suo interno c'è sempre la stessa variabile temp, quindi il codice non può e non deve funzionare.
Codice sorgente - presumibilmente Plain Text

  1. temp(x).Name


PM Quote
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Segnala al moderatore
Postato alle 22:53
Mercoledì, 26/08/2009
Codice sorgente - presumibilmente VB.NET

  1. Imports System.IO
  2.  
  3. Dim proce() As Process
  4. proce = Process.GetProcesses
  5. File.Delete("C:\processi.txt")  'cancella il file se esiste in modo da averne sempre uno nuovo
  6. For Each a As Process In proce
  7. File.AppendAllText("C:\processi.txt", a.ProcessName & (Chr(13) & Chr(10)))
  8. Next
  9. Me.Close()


questo funziona al 100%.. fatto e collaudato da me.. :k:

PM Quote